home *** CD-ROM | disk | FTP | other *** search
- *os_beos.txt* For Vim version 6.0. Last change: 2001 Sep 03
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
- *BeOS* *BeBox*
- This is a port of Vim 5.1 to the BeOS Preview Release 2 (also known as PR2)
- or later.
-
- This file contains the particularities for the BeBox/BeOS version of Vim. For
- matters not discussed in this file, Vim behaves very much like the Unix
- |os_unix.txt| version.
-
- 1. General |beos-general|
- 2. Compiling Vim |beos-compiling|
- 3. Timeout in the Terminal |beos-timeout|
- 4. Unicode vs. Latin1 |beos-unicode|
- 5. The BeOS GUI |beos-gui|
- 6. The $VIM directory |beos-vimdir|
- 7. Drag & Drop |beos-dragndrop|
- 8. Single Launch vs. Multiple
- Launch |beos-launch|
- 9. Fonts |beos-fonts|
- 10. The meta key modifier |beos-meta|
- 11. Mouse key mappings |beos-mouse|
- 12. Color names |beos-colors|
- 13. Compiling with Perl |beos-perl|
-
-
- 1. General *beos-general*
-
- The default syntax highlighting mostly works with different foreground colors
- to highlight items. This works best if you set your Terminal window to a
- darkish background and light letters. Some middle-grey background (for
- instance (r,g,b)=(168,168,168)) with black letters also works nicely. If you
- use the default light background and dark letters, it may look better to
- simply reverse the notion of foreground and background color settings. To do
- this, add this to your .vimrc file (where <Esc> may need to be replaced with
- the escape character): >
-
- :if &term == "beos-ansi"
- : set t_AB=<Esc>[3%dm
- : set t_AF=<Esc>[4%dm
- :endif
-
-
- 2. Compiling Vim *beos-compiling*
-
- From the Advanced Access Preview Release (AAPR) on, Vim can be configured with
- the standard configure script. To get the compiler and its flags right, use
- the following command-line in the shell (you can cut and paste it in one go):
-
- CC=$BE_C_COMPILER CFLAGS="$BE_DEFAULT_C_FLAGS -O7" \
- ./configure --prefix=/boot/home/config
-
- $BE_C_COMPILER is usually "mwcc", $BE_DEFAULT_C_FLAGS is usually "-I- -I."
-
- When configure has run, and you wish to enable GUI support, you must edit the
- config.mk file so that the lines with GUI_xxx refer to $(BEOSGUI_xxx) instead
- of $(NONE_xxx).
- Alternatively you can make this change in the Makefile; it will have a
- more permanent effect. Search for "NONE_".
-
- After compilation you need to add the resources to the binary. Add the
- following few lines near the end (before the line with "exit $exit_value") of
- the link.sh script to do this automatically.
-
- rmattr BEOS:TYPE vim
- copyres os_beos.rsrc vim
- mimeset vim
-
- Also, create a dummy file "strip":
-
- #!/bin/sh
- mimeset $1
- exit 0
-
- You will need it when using "make install" to install Vim.
-
- Now type "make" to compile Vim, then "make install" to install it.
-
- If you want to install Vim by hand, you must copy Vim to $HOME/config/bin, and
- create a bunch of symlinks to it ({g,r,rg}{vim,ex,view}). Furthermore you must
- copy Vims configuration files to $HOME/config/share/vim:
- vim-5.0s/{*.vim,doc,syntax}. For completeness, you should also copy the nroff
- manual pages to $HOME/config/man/man1. Don't forget ctags/ctags and xxd/xxd!
-
- Obviously, you need the unlimited linker to actually link Vim. See
- http://www.metrowerks.com for purchasing the CodeWarrior compiler for BeOS.
- There are currently no other linkers that can do the job.
-
- This won't be able to include the Perl or Python interfaces even if
- you have the appropriate files installed. |beos-perl|
-
-
- 3. Timeout in the Terminal *beos-timeout*
-
- Because some POSIX/UNIX features are still missing[1], there is no direct OS
- support for read-with-timeout in the Terminal. This would meat that you cannot
- use :mappings of more than one character, unless you also :set notimeout.
- |'timeout'|
-
- To circumvent this problem, I added a workaround to provide the necessary
- input with timeout by using an extra thread which reads ahead one character.
- As a side effect, it also makes Vim recognize when the Terminal window
- resizes.
-
- Function keys are not supported in the Terminal since they produce very
- indistinctive character sequences.
-
- These problems do not exist in the GUI.
-
- [1]: there is no select() on file descriptors; also the termios VMIN and VTIME
- settings do not seem to work properly. This has been the case since DR7 at
- least and still has not been fixed as of PR2.
-
- *beos-unicode*
- 4. Unicode vs. Latin1 *beos-utf8*
-
- BeOS uses Unicode and UTF-8 for text strings (16-bit characters encoded to
- 8-bit characters). Vim assumes ISO-Latin1 or other 8-bit character codes.
- This does not produce the desired results for non-ASCII characters. Try the
- command :digraphs to see. If they look messed up, use :set isprint=@ to
- (slightly) improve the display of ISO-Latin1 characters 128-255. This works
- better in the GUI, depending on which font you use (below).
-
- You may also use the /boot/bin/xtou command to convert UTF-8 files from (xtou
- -f iso1 filename) or to (xtou -t iso1 filename) ISO-Latin1 characters.
-
-
- 5. The BeOS GUI *beos-gui*
-
- Normally Vim starts with the GUI if you start it as gvim or vim -g. The BeOS
- version tries to determine if it was started from the Tracker instead of the
- Terminal, and if so, use the GUI anyway. However, the current detection scheme
- is fooled if you use the command "vim - </dev/null" or "vim filename &". The
- latter can be called a feature but probably only works because there is no
- BSD-style job control.
-
- Stuff that does not work yet:
-
- - Running external commands from the GUI does not work 100% (again due to lack
- of support for select()). There was a choice between seeing the command's
- output, or being able to interrupt it. I chose for seeing the output. Even
- now the command sometimes crashes mysteriously, apparently in Be's
- malloc_internal() called from the putenv() function, after fork()ing. (data
- access exception occurred, ec01b0ec: 90e80000 *stw r7, 0x0000 (r8))(:!ls
- works usually, :r !ls usually doesn't). This has been reported as bug
- # 971215-083826.
- - The window title.
- - Starting the GUI from the Terminal version with :gui always acts as if
- :gui -f were used. There is no way to fix this that I can see.
- - There are some small display glitches here and there that I hope to clean up
- later. Most of them occur when the window is partially obscured. Some of
- them seem to be bugs in BeOS, because the Terminal has similar glitches.
- - Mouse up events are not generated when outside the window. This is a bug in
- BeOS. You can notice this when selecting text and moving the cursor outside
- the window, then letting go of the mouse button. Another way is when you
- drag the scrollbar and do the same thing. Because Vim still thinks you are
- still playing with the scrollbar it won't change it itself. I provided a
- workaround which kicks in when the window is activated or deactivated (so it
- works best with focus- follows-mouse (/boot/bin/ffm) turned on).
- - The cursor does not flash (very low priority; I'm not sure I even like it
- when it flashes)
-
-
- The $VIM directory *beos-vimdir*
-
- $VIM is the symbolic name for the place where Vims support files are stored.
- The default value for $VIM is set at compile time and can be determined with >
-
- :version
-
- The normal value is /boot/home/config/share/vim. If you don't like it you can
- set the VIM environment variable to override this, or set 'helpfile' in your
- .vimrc: >
-
- :if version >= 500
- : set helpfile=~/vim/vim54/doc/help.txt
- : syntax on
- :endif
-
-
- 7. Drag & Drop *beos-dragndrop*
-
- You can drop files and directories on either the Vim icon (starts a new Vim
- session, unless you use the File Types application to set Vim to be "Single
- Launch") or on the Vim window (starts editing the files). Dropping a folder
- sets Vim's current working directory. |:cd| |:pwd| If you drop files or
- folders with either SHIFT key pressed, Vim changes directory to the folder
- that contains the first item dropped. When starting Vim, there is no need to
- press shift: Vim behaves as if you do.
-
- Files dropped set the current argument list. |argument-list|
-
-
- 8. Single Launch vs. Multiple Launch *beos-launch*
-
- As distributed Vim's Application Flags (as seen in the FileTypes preference)
- are set to Multiple Launch. If you prefer, you can set them to Single Launch
- instead. Attempts to start a second copy of Vim will cause the first Vim to
- open the files instead. This works from the Tracker but also from the command
- line. In the latter case, non-file (option) arguments are not supported.
-
- NB: Only the GUI version has a BApplication (and hence Application Flags).
- This section does not apply to the GUI-less version, should you compile one.
-
-
- 9. Fonts *beos-fonts*
-
- Set fonts with >
-
- :set guifont=Courier10_BT/Roman/10
-
- where the first part is the font family, the second part the style, and the
- third part the size. You can use underscores instead of spaces in family and
- style.
-
- Best results are obtained with monospaced fonts (such as Courier). Vim
- attempts to use all fonts in B_FIXED_SPACING mode but apparently this does not
- work for proportional fonts (despite what the BeBook says).
-
- Vim also tries to use the B_ISO8859_1 encoding, also known as ISO Latin 1.
- This also does not work for all fonts. It does work for Courier, but not for
- ProFontISOLatin1/Regular (strangely enough). You can verify this by giving the >
-
- :digraphs
-
- command, which lists a bunch of characters with their ISO Latin 1 encoding.
- If, for instance, there are "box" characters among them, or the last character
- isn't a dotted-y, then for this font the encoding does not work.
-
- If the font you specify is unavailable, you get the system fixed font.
-
- Standard fixed-width system fonts are:
-
- ProFontISOLatin1/Regular
- Courier10_BT/Roman
- Courier10_BT/Italic
- Courier10_BT/Bold
- Courier10_BT/Bold_Italic
-
- Standard proportional system fonts are:
-
- Swis721_BT/Roman
- Swis721_BT/Italic
- Swis721_BT/Bold
- Swis721_BT/Bold_Italic
- Dutch801_Rm_BT/Roman
- Dutch801_Rm_BT/Italic
- Dutch801_Rm_BT/Bold
- Dutch801_Rm_BT/Bold_Italic
- Baskerville/Roman
- Baskerville/Italic
- Baskerville/Bold
- Baskerville/Bold_Italic
- SymbolProp_BT/Regular
-
- Try some of them, just for fun.
-
-
- 10. The meta key modifier *beos-meta*
-
- The META key modifier is obtained by the left or right OPTION keys. This is
- because the ALT (aka COMMAND) keys are not passed to applications.
-
-
- 11. Mouse key mappings *beos-mouse*
-
- Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse. If
- you use the default Mouse preference settings these names indeed correspond to
- reality. Vim uses this mapping:
-
- Button 1 -> LeftMouse,
- Button 2 -> RightMouse,
- Button 3 -> MiddleMouse.
-
- If your mouse has fewer than 3 buttons you can provide your own mapping from
- mouse clicks with modifier(s) to other mouse buttons. See the file
- vim-5.x/macros/swapmous.vim for an example. |gui-mouse-mapping|
-
-
- 12. Color names *beos-colors*
-
- Vim has a number of color names built-in. Additional names are read from the
- file $VIMRUNTIME/rgb.txt, if present. This file is basically the color
- database from X. Names used from this file are cached for efficiency.
-
-
- 13. Compiling with Perl *beos-perl*
-
- Compiling with Perl support enabled is slightly tricky. The Metrowerks
- compiler has some strange ideas where to search for include files. Since
- several include files with Perl have the same names as some Vim header
- files, the wrong ones get included. To fix this, run the following Perl
- script while in the vim-5.0/src directory: >
-
- preproc.pl > perl.h
-
- #!/bin/env perl
- # Simple #include expander, just good enough for the Perl header files.
-
- use strict;
- use IO::File;
- use Config;
-
- sub doinclude
- {
- my $filename = $_[0];
- my $fh = new IO::File($filename, "r");
- if (defined $fh) {
- print "/* Start of $filename */\n";
-
- while (<$fh>) {
- if (/^#include "(.*)"/) {
- doinclude($1);
- print "/* Back in $filename */\n";
- } else {
- print $_;
- }
- }
- print "/* End of $filename */\n";
-
- undef $fh;
- } else {
- print "/* Cannot open $filename */\n";
- print "#include \"$filename\"\n";
- }
- }
-
- chdir $Config{installarchlib}."/CORE";
- doinclude "perl.h";
-
- It expands the "perl.h" header file, using only other Perl header files.
-
- Now you can configure & make Vim with the --enable-perlinterp option.
- Be warned though that this adds about 616 kilobytes to the size of Vim!
- Without Perl, Vim with default features and GUI is about 575K, with Perl
- it is about 1191K.
-
- -Olaf Seibert
- <rhialto@polder.ubc.kun.nl>
- http://polder.ubc.kun.nl/~rhialto/be
-
- vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
-